超全!!snowboy语音唤醒(树莓派4b) |
您所在的位置:网站首页 › 树莓派 4B开发板 › 超全!!snowboy语音唤醒(树莓派4b) |
序言
时间 2024/3/18 硬件:树莓派4b 系统:rpi-aarch64 前情概要:我们在做一个基于树莓派接入chat的桌宠机器人(卓越小子),为了能和机器人对话,并把内容送给chat,我们需要一个唤醒词例如“小爱同学” 、“siri“这样子的模型,于是我们找到了snowboy这个模型。 环境安装Snowboy在树莓派4B上没有现成的编译好的binary,因此根据源码自己编译。我选用的是python,因为我们还有一个opencv的项目,树莓派上已经有了python的环境,如有需要可以自己安装。 1.下载snowboy代码(两者都可以,但是必须要拖到树莓派下解压,在pc解压后拖过去会报错,因为编译环境不同) 链接:https://pan.baidu.com/s/15fu6r5DNH_jwF1nkOw9sQA?pwd=1234 提取码:1234 --来自百度网盘超级会员V3的分享 git clone https://github.com/Kitt-AI/snowboy.git解压命令 unzip snowboy-master.zip 2.安装依赖2.1 安装 pulseaudio 软件,减少音频配置的步骤: sudo apt-get install pulseaudio2.2 安装 sox 软件测试录音与播放功能,安装完成后运行 sox -d -d 命令,对着麦克风说话,确认可以听到自己的声音。 sudo apt-get install sox2.3 安装 SWIG(>3.0.10) sudo apt-get install swig2.4 安装 ATLAS: sudo apt-get install libatlas-base-dev2.5安装对应库(是python就把python3改成python) sudo apt-get install python3-pyaudio 运行进入python目录下 cd snowboy/swig/Python3使用make命令进行编译,如果出现问题转常见问题1 进入官方示例目录 snowboy/examples/Python 并运行以下命令: python3 demo.py resources/models/snowboy.umdl出现问题转常见问题2 这个时候喊出”snowboy“,就能唤醒了,同时有滴的声音(我们为了方便,直接连的蓝牙音箱播放声音) 因为官网在2020年已经关闭,我们可以进入这个网页进行录制。 Snowboy Personal Wake Word 录制3 个wav 格式的的音频文件,内容即为你的唤醒词,最好使用你要运行唤醒功能的机器录制,录音参数最好设置和程序中的一样,通过查阅程序,我得到的参数为: 采样深度为16位即2个字节、声道数为1、采样率为16K、 1.1 同时需要放入的还有 1、下载好的 nihaoxiaobai.pmdl 模型文件 2、snowboy/swig/Python3 目录下编译好的 _snowboydetect.so 库 3、snowboy/examples/Python3 目录下的 demo.py、snowboydecoder.py、snowboydetect.py 文件以及 resources 目录 遇到问题跳转至常见问题三 在新建目录下执行 python3 demo.py zyxz.pmdl成功后就可以唤醒了 这样我们就成功的修改了唤醒词,如果不成功多试几次,或者是在录制音频训练的时候没有录上 遇到的常见问题 问题一:描述 在进入目录下进行make操作但是失败,![]() 返回错误1,通过查阅资料, …/…/lib/ubuntu64/libsnowboy-detect.a:error adding symbols: File in wrong format 在snowboy/lib下一共有 aarch64-ubuntu1604/ --对应arm64 ubuntu1604,经验证ubuntu1804也可以使用 android/ --对应android系统 ios/ --对应ios系统 node/ osx/ --对应macos rpi/ --对应树莓派32位arm ubuntu64/ --对应PC Ubuntu64 uname -r通过这个命令查看版本,对应上面的进行修改,nano Makefile 进入文件 在这个地方添加这样一段话(我这里是rpi版本) ifneq (,$(findstring aarch64,$(shell uname -m))) SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/rpi/libsnowboy-detect.a endif 或者前面全部注释,用下面这句 SNOWBOYDETECTLIBFILE = $(TOPDIR)/lib/rpi/libsnowboy-detect.a保存退出后应该就可以了,如果还不行可以尝试别的版本(我们一开始查出来是arrch64,但是使用arrch64版本不行,换成了rpi就可以了很奇怪) 问题二:进入python目录下执行唤醒失败(我没遇到)我们打开snowboydecoder.py 文件,将第 5 行代码 from * import snowboydetect 改为 import snowboydetect 即可直接运行。
Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started 请安装jackd2 apt-get install -y jackd2# pulseaudio --kill关闭 --start启动 jack_control start #启动 status查看状态 exit退出 安装jackd2后重启一下,否则可能出现--问题 Cannot lock down 82274202 byte memory area (Cannot allocate memory) 问题四:在修改唤醒词把文件转移到新文件下,snowboydetect.py 文件以及 resources 目录是红色,不能正常使用。(如图)我们通过ls-l指令,进行查看文件,发现这两个文件只是软链接(相当于快捷方式)复制过来了,我们需要去根据提示,在snowboy/swig/Python/snowboydetect.py和snowboy/resources这两个目录下复制过来 cp snowboydectect.py ~/Desktop/zyxz/#复制过来然后就可以了 参考资料:树莓派学习之旅(3)— 使用 snowboy 做语音唤醒功能_snowboy gitee-CSDN博客 树莓派4B编译安装snowboy_libsnowboy-detect.a: error adding symbols: file in-CSDN博客 关于树莓派编译及运行Snowboy的详细教程。_snowboy官网-CSDN博客 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |